WriteFileEx

Otázka od: Ján Harman

20. 11. 2002 22:38

Pouzivate nekdo prosim funkci WriteFileEx v asynchronnim rezimu? Poskytnete
priklad?
Diky. Honza.

Odpovedá: Dalibor Toman

21. 11. 2002 0:17

> pouzivam WriteFileEx a nejak mi nechce volat FileIOCompletionRoutine, kdy
se
> to prosim vola?
> Potrebuji to pouzivat i pri ReadFileEx, ale nevim jak to inicializovat.
> Myslim ze adresu funkce predavam spravne. Dik. Honza.

volajici thread musi byt v 'alertable state' tedy napriklad v funkci
WaitForXXX

ne prilis kompletni priklad pouziti:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base
/reading_writing_and_locking_a_file.asp


V rade pripadu je mnohem jednodusi nastartovat nejaky thread a v nem
zapis/cteni provest asynchrnonne vuci hlavnimu procesu.

IO Completion routines se pouzivaji jen v krajnich pripadech kdy jde
skutecne o maximalni vykon (a maximalni neprehlednost kodu   ) a to hlavne
v klient/server aplikacich kde se pripojuji velka mnozstvi klientu najednou.

D. Toman

Odpovedá: Ján Harman

21. 11. 2002 8:28

Ano volam WaitForSingleObject hned po vykonani ReadFile, potom je odezva v
CompletionRoutine, ale prijme to nejprve 1 potom zase jeden a potom zbytek.
Takze CompletionRoutine je volana 3x. Myslis abych ji tam nedaval vubec?
Nebo pouzil synchronni cteni? Diky. Honza.

> > pouzivam WriteFileEx a nejak mi nechce volat FileIOCompletionRoutine,
kdy
> se
> > to prosim vola?
> > Potrebuji to pouzivat i pri ReadFileEx, ale nevim jak to inicializovat.
> > Myslim ze adresu funkce predavam spravne. Dik. Honza.
>
> volajici thread musi byt v 'alertable state' tedy napriklad v funkci
> WaitForXXX
>
> ne prilis kompletni priklad pouziti:
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base
> /reading_writing_and_locking_a_file.asp
>
>
> V rade pripadu je mnohem jednodusi nastartovat nejaky thread a v nem
> zapis/cteni provest asynchrnonne vuci hlavnimu procesu.
>
> IO Completion routines se pouzivaji jen v krajnich pripadech kdy jde
> skutecne o maximalni vykon (a maximalni neprehlednost kodu   ) a to
hlavne
> v klient/server aplikacich kde se pripojuji velka mnozstvi klientu
najednou.
>
> D. Toman
>
>
>

Odpovedá: Dalibor Toman

21. 11. 2002 9:47

> Ano volam WaitForSingleObject hned po vykonani ReadFile, potom je
odezva v
> CompletionRoutine, ale prijme to nejprve 1 potom zase jeden a potom
zbytek.
> Takze CompletionRoutine je volana 3x. Myslis abych ji tam nedaval
vubec?
> Nebo pouzil synchronni cteni? Diky. Honza.
>

pokud to napises v separatnim threadu muzes pouzit obycejne synchronni
funkce.

D. Toman